The disclosed embodiments relate to an improved approach for decompressing an image with a document processing platform, such as a scanner, printer or display device.
Under the JPEG2000 Standard, each image may be divided into rectangular tiles. If there is more than one tile, the tiling of the image creates tile-components. An image may have multiple components. For example, a color image might have red, green and blue components. Tile-components can be extracted or decoded independently of each other.
After tiling of an image, the tile-components are decomposed into one or more different decomposition levels using a wavelet transformation. These decomposition levels contain a number of subbands populated with coefficients that describe the horizontal and vertical spatial frequency characteristics of the original tile-components. The coefficients provide frequency information about a local area, rather than across the entire image. That is, a small number of coefficients completely describe a single sample. A decomposition level is related to the next decomposition level by a spatial factor of two, such that each successive decomposition level of the subbands has approximately half the horizontal resolution and half the vertical resolution of the previous decomposition level.
Although there are as many coefficients as there are samples, the information content tends to be concentrated in just a few coefficients. Through quantization, the numerical precision of a number of coefficients may be reduced with a disproportionately low introduction of distortion (quantization noise). Additional processing by an entropy coder reduces the number of bits required to represent these quantized coefficients, sometimes significantly compared to the original image.
The individual subbands of a tile-component are further divided into code-blocks. These code-blocks can be grouped into precincts. These rectangular arrays of coefficients can be extracted independently. The individual bit-planes of the coefficients in a code-block are entropy coded with three coding passes. Each of these coding passes collects contextual information about the bit-plane compressed image data.
The bit stream compressed image data created from these coding passes is grouped in layers. Layers are groupings of successive coding passes from code-blocks. Although there is great flexibility in layering, the premise is that each successive layer contributes to a higher quality image. Code-blocks of subband coefficients at each resolution level are partitioned into rectangular areas called precincts.
Packets are a fundamental unit of the compressed codestream. A packet contains compressed image data from one layer of a precinct of one resolution level of one tile-component. These packets are placed in a defined order in the codestream.
The codestream relating to a tile, organized in packets, is arranged in one, or more, tile-parts. A tile-part header, comprised of a series of markers and marker segments, or tags, contains information about the various mechanisms and coding styles that are needed to locate, extract, decode, and reconstruct every tile-component. At the beginning of the entire codestream is a main header, comprised of markers and marker segments, that offers similar information as well as information about the original image.
The codestream is optionally wrapped in a file format that allows applications to interpret the meaning of, and other information about, the image. The file format may contain data besides the codestream.
The decoding of a JPEG2000 codestream is performed by reversing the order of the encoding steps. FIG. 2 is a block diagram of the JPEG2000 standard decoding scheme that operates on a compressed image data codestream. Referring to FIG. 2, a bitstream initially is received by data ordering block 101 that regroups layers and subband coefficients. Arithmetic decoder 102 uses contextual information from previously coded coefficients provided by the bit modeling block 103 about the bit-plane compressed image data, and its internal state, to decode a compressed bit stream.
Next, the codestream is dequantized by dequantization block 104, which may be dequantizing based on a region of interest (ROI) as indicated by ROI block 105. After dequantization, an inverse wavelet/spatial transform is applied to the coefficients via transform block 107, followed by DC level shifting and optional component transform block 108. This results in generation of a reconstructed image.
To more fully comprehend the disclosed embodiments, the following provides further background and/or clarification regarding resolution levels and quality layers. As is known, a JPEG 2000-compressed image can have multiple resolution levels and multiple quality layers. Referring to FIG. 3, an image with multiple subbands and resolution levels is shown. The original image is wavelet transformed to create the four subband images LL1, LH1, HL1and HH1—the notation signifies the different horizontal and vertical combinations of low-pass L and high-pass H wavelet filters. These subband images replace the original image and can be used to recreate the original image. Referring still to FIG. 3, the LL1 subband may be wavelet transformed to create four new subband images LL2, LH2, HL2 and HH2, the new subband images replacing the LL1 subband image. Even though FIG. 3 shows only 2 levels of wavelet transform, this process of wavelet transforming successive images can continue well beyond two levels. Indeed, the JPEG2000 standard permits up to 32 wavelet transforms; however, most applications use 5 or 6 levels. JPEG2000 creates a compressed image by quantizing and entropy encoding the subband images.
By accessing the subband images, a JPEG2000 decoder is able to display image at different resolution levels. For example, to display a 1/16th size image, a JPEG2000 decoder accesses and decompresses just the LL2 subband. To display a quarter-sized image, it accesses and decompresses the LH2, HL2 and HH2 subband images and combines them with the LL2 subband image to recreate the LL1 subband image.
FIG. 4 is an exemplary schematic representation of a compressed image with 4 resolution levels and 4 quality layers. In this example, compressed image data exists for each combination of quality layer and resolution level; however, in other examples, some combinations might not contain any compressed data. In general, the amount of compressed data varies with the combination of quality layer and resolution level. As is known, a quality layer represents an increment in quality of the image at full resolution. A given quality layer represents the image compressed to a given bitrate. Quality layers cut across resolution levels to obtain the specified amount of compressed data and a specific bitrate. In the exemplary schematic of FIG. 4, Layer 1 represents the lowest quality image. Layer 4 contains data from all the subbands at all resolution levels, and represents the final increment in quality. To display the highest quality decompressed image requires data from Layers 1 through 4.
In accordance with one aspect of the disclosed embodiments, there is provided a printing system for processing a print job including compressed print related data stored in an image buffer. The printing system includes a decompression system for decompressing the compressed print related data; and the decompression system includes a processor and a program for decompressing of the compressed print related data. The processor functions with the decompression program such that the decompressing varies as a function of a resolution level and either a first set of quality layers or a second set of quality layers. The number of quality layers in the first quality layer set is greater than the number of quality layers in the second quality set, and, pursuant to the decompressing, the resolution level is corresponded with the second quality layer set so that the compressed image data is decompressed with less quality layers than in the first quality layer set.
In accordance with another aspect of the disclosed embodiments, there is provided a decompression system for decompressing a job in a document management system, the job including compressed image data and the compressed image data being buffered in memory. The decompression system includes a processor and a decompression program operating with the processor in such a way that the decompressing varies as a function of a resolution level and either a first set of quality layers or a second set of quality layers. The number of quality layers in the first quality layer set is greater than the number of quality layers in the second quality set, and, pursuant to the decompressing, the resolution level is corresponded with the second quality layer set so that the compressed image data is decompressed with less quality layers than in the first quality layer set.
In accordance with yet another aspect of the disclosed embodiments, there is provided a decompression system for decompressing to either a first image type or a second image type. The decompression system includes a processor and a decompression program. The decompression program operates with said processor in such a way that the decompressing varies as a function of either the first image type and a first set of quality layers or the second image type and a second set of quality layers. The number of quality layers in the first quality layer set is greater than the number of quality layers in the second quality layer set, and the first quality layer set is used for decompressing the first image type, and the second quality layer set is used in decompressing the second image type.
In accordance with another aspect of the disclosed embodiments, there is provided a method for decompressing a job in a document management system, the job including compressed image data. The method includes buffering the compressed image data and decompressing the buffered compressed image data such that the decompressing varies as a function of a resolution level and either a first set of quality layers and a second set of quality layers. The number of quality layers in the first quality layer set is greater than the number of quality layers in the second quality set and, pursuant to said decompressing, the resolution level is corresponded with the second quality layer set so that the compressed image data is decompressed with less quality layers than in the first quality layer set.